Presentation and manipulation of data is a long-standing principal use of computing systems. Various different charts, graphs, or other approaches are used to present data to a human user. Such approaches are often referred to as “visualizations” of the data. For example, a popular visualization is a graph that includes nodes connected by lines or “edges.” Such node-edge graphs can include a hierarchical tree structure where a root node is at the top, bottom, left or right of a display. Another type of node-edge graph is a circular graph where the root node may be in the middle of the display surrounded by successive children nodes in expanding concentric circles. Other variations of the node-edge graph are possible, as are many other types or varieties of visualizations.
Modern databases often require displaying and manipulating thousands or more nodes. Although the nodes and edges can be displayed in miniature, it is often not possible to include all or even a significant portion of the data in a single, comprehensible display. A user is typically provided with controls to scroll over the graph by panning and can zoom in and out of the graph to see more or less detail. This pan and zoom metaphor does not scale well as context can be lost while zooming in and out. Many solutions provide some context by displaying a small map in a separate window.
When nodes are made significantly small, it is difficult to include any associated data with the nodes, such as text or numbers, symbols, color or icon images, or other graphics or indicators. To compound the user interface issues, it is often desirable to not only display the nodes, but to also allow a user to interact with the display to scale, modify, or otherwise change the display and/or the underlying data that is represented by the display.